---
id: 6553a572f7a65718f1e42e18
title: Крок 51
challengeType: 20
dashedName: step-51
---

# --description--

Функція — це, по суті, багаторазовий блок коду. Ви вже ознайомилися з деякими вбудованими функціями, такими як `print()`, `find()` та `len()`. Але ви також можете визначити власні функції:

```py
def function_name():
    <code>
```

Оголошення функції починається з ключового слова `def`, після якого йде назва функції (дійсна назва змінної) та пара круглих дужок. Оголошення закінчується двокрапкою.

Оголосіть функцію під назвою `caesar` одразу після змінної `shift` та зробіть відступ для всіх наступних рядків, щоб надати новій функції тіло.

# --hints--

Використайте ключове слово `def`, щоб оголосити нову функцію.

```js
assert.match(code, /^def\s+/m)
```

Напишіть `caesar` як назву функції після ключового слова `def`. Не забудьте додати пробіл після `def`.

```js
assert.match(code, /^def\s+caesar/m)
```

Додайте пару круглих дужок після назви функції. Не забудьте наприкінці поставити двокрапку.

```js
assert.match(code, /^def\s+caesar\s*\(\s*\)\s*:/m)
```

Зробіть відступ для всіх рядків після `shift = 3`, щоб вони стали тілом нової функції.

```js
({ test: () => {
    const commentless_code = __helpers.python.removeComments(code);
    const {def} = __helpers.python.getDef(commentless_code, "caesar");    
    const replacement = def.replace(/print\s*\(\s*("|')plain\stext:\1\s*,\s*text\s*\)\s*print\s*\(\s*("|')encrypted\stext:\2\s*,\s*encrypted_text\s*\)/, "return encrypted_text")
    const py_code = `
text = "Hello Zaira"
shift = 3
${replacement}
caesar()
`
    const out = __pyodide.runPython(py_code, {});
    assert.equal(out, "khoor cdlud");
  }
})
```

# --seed--

## --seed-contents--

```py
--fcc-editable-region--
text = 'Hello Zaira'
shift = 3

alphabet = 'abcdefghijklmnopqrstuvwxyz'
encrypted_text = ''

for char in text.lower():
    if char == ' ':
        encrypted_text += char
    else:
        index = alphabet.find(char)
        new_index = (index + shift) % len(alphabet)
        encrypted_text += alphabet[new_index]
print('plain text:', text)
print('encrypted text:', encrypted_text)
--fcc-editable-region--
```
